package com.ruoyi.system.domain;

import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

/**
 * 预警项目配置表 sys_alert_config
 *
 * @author ruoyi
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("预警项目配置")
public class SysAlertConfig extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 配置ID
     */
    @ApiModelProperty(value = "配置ID", required = true)
    private Long id;

    /**
     * 预警大项名称
     */
    @ApiModelProperty(value = "预警大项名称（心率、血压、血氧）", required = true)
    @NotBlank(message = "预警大项名称不能为空")
    @Size(min = 0, max = 100, message = "预警大项名称不能超过100个字符")
    private String projectName;

    /**
     * 预警大项类别
     */
    @ApiModelProperty(value = "预警大项类别（heart_rate、blood_pressure、blood_oxygen）", required = true)
    @NotBlank(message = "预警大项类别不能为空")
    @Size(min = 0, max = 50, message = "预警大项类别不能超过50个字符")
    private String projectCate;

    /**
     * 预警级别
     */
    @ApiModelProperty(value = "预警级别（1一级、2二级、3三级）", required = true)
    @NotBlank(message = "预警级别不能为空")
    private String alertLevel;

    /**
     * 预警小项名称
     */
    @ApiModelProperty(value = "预警小项名称（过高、过低、过速、过缓、收缩压、舒张压）", required = true)
    @NotBlank(message = "预警小项名称不能为空")
    @Size(min = 0, max = 100, message = "预警小项名称不能超过100个字符")
    private String itemName;

    /**
     * 预警小项类别
     */
    @ApiModelProperty(value = "预警小项类别（high、low、systolic、diastolic）", required = true)
    @NotBlank(message = "预警小项类别不能为空")
    @Size(min = 0, max = 50, message = "预警小项类别不能超过50个字符")
    private String itemCate;

    /**
     * 阈值
     */
    @ApiModelProperty(value = "阈值")
    private Integer threshold;

    /**
     * 阈值最小值
     */
    @ApiModelProperty(value = "阈值最小值")
    private Integer minValue;

    /**
     * 阈值最大值
     */
    @ApiModelProperty(value = "阈值最大值")
    private Integer maxValue;

    /**
     * 比较规则
     */
    @ApiModelProperty(value = "比较规则（gt大于、lt小于）")
    @Size(min = 0, max = 10, message = "比较规则不能超过10个字符")
    private String compareRule;

    /**
     * 颜色
     */
    @ApiModelProperty(value = "颜色")
    private String color;

    /**
     * 预警名称
     */
    @ApiModelProperty(value = "预警名称", required = true)
    @NotBlank(message = "预警名称不能为空")
    @Size(min = 0, max = 100, message = "预警名称不能超过100个字符")
    private String alertName;
}